package service;

import java.io.File;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.gson.Gson;
import bean.Content;
import dao.ApiDao;
import servlet.UserServlet;
import utils.FileUtils;
import utils.SysConfig;

/** 
* @ClassName: ApiService 
* @Description: TODO(这里用一句话描述这个类的作用) 
* @author undoner@gmail.com
* @date 2017年1月23日 下午12:57:23 
*/
public class ApiService {
	private static final Logger logger = LoggerFactory.getLogger(ApiService.class);
	private Gson gson = new Gson();
	
	
	/** 
	* @Title: Query 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @param filePath	日志文件路径
	* @param @param SearchKey	搜索关键词
	* @param @param upLineConunt	关键词上溯行数
	* @param @param downLineCount	关键词下溯行数
	* @param @param limit	关键词匹配结果数
	* @param @return    设定参数 
	* @return String    返回类型 
	* @throws 
	* @author undoner@gmail.com 
	* @date 2017年1月23日 下午12:57:27 
	*/
	public String Query(String filePath,String SearchKey,int upLineConunt,int downLineCount,int limit){
		if(filePath.equals("Test.txt")){
			filePath = ApiService.class.getClassLoader().getResource("").getPath()+File.separator+"logs.txt";
			logger.debug("filePath:"+filePath);
		}
		File fileUrl = new File(filePath);
		if(!fileUrl.exists()){
			return "fileUrl no exists";
		}
		
		//加载指定路径的日志文件
		List<Content> dataListAll = FileUtils.importFile(fileUrl);
		
		//按照搜索参数查找指定字符串
		List<Content> dataListSearch = FileUtils.searchKey(dataListAll,SearchKey,upLineConunt,downLineCount,limit);
		
		if(SysConfig.IS_STORE_DB){
			ApiDao apiDao = new ApiDao();
			for(Content content:dataListSearch){
				apiDao.add(String.valueOf(content.getLineNo()), content.getLineContent());
			}
			
		}
		
		return gson.toJson(dataListSearch);
	}
	
	
	

}
